package com.atguigu.lease.common.exception;

import com.atguigu.lease.common.result.Result;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

/**
 * @author gengjian
 * @date 2024/12/09 20:49:40
 * 自定义全局异常处理器
 */
@RestControllerAdvice //用于声明处理全局controller方法异常的类
public class GlobalExceptionHandler {

    /**
     * @author gengjian
     * @date 2024/12/11 11:44:03
     * 定义通用异常处理方法  捕获手动抛出该异常的方法
     */
    @ExceptionHandler(LeaseException.class)
    private Result<Object> leaseExceptionHandler(LeaseException e){
        e.printStackTrace();
        return Result.fail(e.getCode(),e.getMessage());
    }

    /**
     * @author gengjian
     * @date 2024/12/11 11:45:00
     * 兜底的异常处理方法
     */
    @ExceptionHandler(Exception.class)
    private Result<Object> handlerException(Exception e){
        //打印异常信息
        e.printStackTrace();
        return Result.fail();
    }
}
